package br.com.odontosul.util;

import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;

public class ArquivoUtil {
	/**
	 * Cria um arquivo baseado em um array de bytes
	 * @param nome
	 * @param dados
	 * @throws IOException
	 */
	public static void setFileFromBytes (String nome, byte[] dados) throws IOException {
		File arquivo = new File(nome);
		FileOutputStream fos = new FileOutputStream(arquivo);
		fos.write(dados);
		fos.flush();
		fos.close();
	}	
	/**
	 * Retorna array de bytes
	 * @param file
	 * @return
	 * @throws IOException
	 */
	public static byte[] getBytesFromFile(File file) throws IOException {
        InputStream is = new FileInputStream(file);
    
        // Get the size of the file
        long length = file.length();
    
        if (length > Integer.MAX_VALUE) {
            // File is too large
        }
    
        // Create the byte array to hold the data
        byte[] bytes = new byte[(int)length];
    
        // Read in the bytes
        int offset = 0;
        int numRead = 0;
        while (offset < bytes.length
               && (numRead=is.read(bytes, offset, bytes.length-offset)) >= 0) {
            offset += numRead;
        }
    
        // Ensure all the bytes have been read in
        if (offset < bytes.length) {
            throw new IOException("Could not completely read file "+file.getName());
        }
    
        // Close the input stream and return bytes
        is.close();
        return bytes;
	} 
}
